perl按日期归档日志 您所在的位置:网站首页 perl qw perl按日期归档日志

perl按日期归档日志

#perl按日期归档日志| 来源: 网络整理| 查看: 265

perl按日期归档日志 原创

dongfang_09859 2011-09-16 20:53:52 博主文章分类:Perl/Shell ©著作权

文章标签 职场 休闲 perl 日志 文章分类 后端开发

©著作权归作者所有:来自51CTO博客作者dongfang_09859的原创作品,请联系作者获取转载授权,否则将追究法律责任

帮一上海朋友工厂维护一台freebsd服务器,该服务器上运行着squid等服务。服务器上有一支perl程序会每天定时的切割当天的squid日志,以日期形式保存在某目录下,大体如下:

-rw-r--r--  1 root  wheel   51827130 Aug 20 04:27 20110801.log -rw-r--r--  1 root  wheel   56598624 Aug 20 04:27 20110802.log -rw-r--r--  1 root  wheel   66925544 Aug 20 04:27 20110803.log -rw-r--r--  1 root  wheel   47917440 Aug 20 04:27 20110804.log -rw-r--r--  1 root  wheel   44134286 Aug 20 04:27 20110805.log -rw-r--r--  1 root  wheel   43705704 Aug 20 04:27 20110808.log -rw-r--r--  1 root  wheel   33358662 Aug 20 04:27 20110809.log -rw-r--r--  1 root  wheel   35820354 Aug 20 04:27 20110810.log -rw-r--r--  1 root  wheel   48065784 Aug 20 04:27 20110811.log -rw-r--r--  1 root  wheel   38021175 Aug 20 04:27 20110812.log -rw-r--r--  1 root  wheel   30382856 Aug 20 04:27 20110813.log -rw-r--r--  1 root  wheel   11898255 Aug 20 04:27 20110815.log -rw-r--r--  1 root  wheel   10068232 Aug 20 04:27 20110816.log -rw-r--r--  1 root  wheel   12431556 Aug 20 04:27 20110817.log -rw-r--r--  1 root  wheel    6405197 Aug 20 04:27 20110818.log -rw-r--r--  1 root  wheel    5054207 Aug 20 04:27 20110819.log -rw-r--r--  1 root  wheel    3455222 Aug 26 04:14 20110821.log -rw-r--r--  1 root  wheel  124680376 Aug 26 04:14 20110822.log -rw-r--r--  1 root  wheel  150105140 Aug 26 04:14 20110823.log -rw-r--r--  1 root  wheel    5183330 Aug 26 04:14 20110824.log -rw-r--r--  1 root  wheel    6486877 Aug 26 04:14 20110825.log -rw-r--r--  1 root  wheel    8481735 Sep  2 04:03 20110828.log -rw-r--r--  1 root  wheel   22789068 Sep  2 04:03 20110829.log -rw-r--r--  1 root  wheel   68841800 Sep  2 04:03 20110830.log 

要求:编写一脚本程序,对该目录中日志以年月的形式进行归档,如201108.tar.gz

代码如下:

#!/usr/bin/perl -w  use strict; use Shell qw/mv/; use File::Path qw/remove_tree/; //调用该模块的目的是为了删除归档前的非空目录 my %log;  if ( $new();     $sh->mv("@array $str");     system("tar czvf ${str}.tar.gz $str");     remove_tree("$str",{ verbose => 1,});  } 

归档过程:

a 201102 a 201102/20110213.log a 201102/20110214.log a 201102/20110218.log a 201102/20110220.log a 201102/20110221.log a 201102/20110222.log a 201102/20110223.log a 201102/20110224.log a 201102/20110225.log a 201102/20110228.log unlink 201102/20110213.log unlink 201102/20110214.log unlink 201102/20110218.log unlink 201102/20110220.log unlink 201102/20110221.log unlink 201102/20110222.log unlink 201102/20110223.log unlink 201102/20110224.log unlink 201102/20110225.log unlink 201102/20110228.log rmdir 201102 ……………………………………………………………………

最后归档后的效果:

[/data/squid_log]# ll total 203762 -rw-r--r--  1 root  wheel  12817056 Sep 16 20:49 201012.tar.gz -rw-r--r--  1 root  wheel   8170954 Sep 16 20:49 201101.tar.gz -rw-r--r--  1 root  wheel   8819026 Sep 16 20:49 201102.tar.gz -rw-r--r--  1 root  wheel  15008666 Sep 16 20:49 201104.tar.gz -rw-r--r--  1 root  wheel  10950252 Sep 16 20:49 201105.tar.gz -rw-r--r--  1 root  wheel  70723508 Sep 16 20:50 201106.tar.gz -rw-r--r--  1 root  wheel  13035446 Sep 16 20:50 201107.tar.gz -rw-r--r--  1 root  wheel  63533990 Sep 16 20:51 201108.tar.gz -rw-r--r--  1 root  wheel   5290849 Sep 16 20:51 201109.tar.gz -rwx------  1 root  wheel       646 Sep 16 17:30 log.pl 收藏 评论 分享 举报

上一篇:[perl]Wide character in print报错

下一篇:perl发邮件代码(备份)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有